package com.shujia.day09;

public class C10StringBuffer {
    public static void main(String[] args) {

        // 创建一个StringBuffer
//        StringBuffer sb = "非new 方式"; 不能直接 赋予一个字符串

        StringBuffer sb = new StringBuffer();
        System.out.println(sb.capacity());  // 表示的是当前StringBuffer的容量大小 默认为16
        /*
            为什么要有容量？ 容量和长度有什么关系？

            StringBuffer中的Buffer表示的是一个缓存 相当于我创建一个对象，该对象再内存中会预先开辟一段内存容量，用于保存数据

            长度表示当前一共有多少字符
            容量会根据存储的数据，进行调整大小，如果数据给量没有达到容量上线，那么不会进行调整，
                如果达到那么会继续增加,但是其大小表示根据字符串长度进行扩增的

            StringBuffer是不支持加法操作

            public StringBuffer()
            public StringBuffer(int capacity)
            public StringBuffer(String str)  //最常用的


         */

        StringBuffer sb2 = new StringBuffer(50);  // 容量可以修改
        System.out.println(sb2.capacity());

        StringBuffer stringBuffer = new StringBuffer("这是一个字符串");
        System.out.println(stringBuffer.capacity()); // 获取容量
        System.out.println(stringBuffer.length()); // 获取其长度  7

        StringBuffer stringBuffer2 = new StringBuffer("这是另外一个字符串");

        // System.out.println(stringBuffer + stringBuffer2);

        stringBuffer.append("这是另外一个字符串.......................");
        System.out.println(stringBuffer.length());  //16
        System.out.println(stringBuffer.capacity()); // 23
        System.out.println(stringBuffer);

        new StringBuffer();
    }
}
